package com.csap.framework.oauth2.client;

import cn.dev33.satoken.LoginUtil;
import com.csap.framework.oauth2.ClientMod;
import com.csap.framework.oauth2.UserInfoMod;
import com.csap.framework.oauth2.type.PlatformType;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;

/**
 * 授权认证配置文件
 *
 * @author yangchengfu
 * @dataTime 2021年-07月-25日 22:09:00
 **/
@Data
@ConfigurationProperties(prefix = Oauth2ClientProperties.PREFIX)
public class Oauth2ClientProperties {
    public static final String PREFIX = "csap.oauth2.client";
    /**
     * 是否开启
     */
    private Boolean enabled = Boolean.FALSE;
    /**
     * 是否开启rest接口
     */
    private Boolean endpoint = Boolean.FALSE;
    /**
     * 平台
     */
    private String platform;
    /**
     * 客户端ID
     */
    private String clientId;
    /**
     * 客户端秘钥
     */
    private String clientSecret;
    /**
     * 授权服务器的URL
     */
    private String oauth2ServerUrl;
    /**
     * 登录类型（值）
     */
    private String loginType = LoginUtil.TYPE;
    /**
     * 用户的类型(例如：用户端，后台管理用户，其他用户等)
     */
    private String userType = "default";
    /**
     * 用户信息获取模式
     */
    @NestedConfigurationProperty
    private UserInfoMod userInfoMod = UserInfoMod.HTTP;
    /**
     * 客户端模式
     */
    private ClientMod clientMod = ClientMod.HTTP;
    /**
     * 平台参数模式
     */
    private PlatformType platformType = PlatformType.CONFIG;
    /**
     * 用户类型参数模式
     */
    private PlatformType userTypeStrategy = PlatformType.CONFIG;
    /**
     * 服务名称
     */
    private String serverName = "csap-oauth2";
    /**
     * 用户缓存刷新时间 默认一周 7天
     */
    private long cacheTime = (60 * 60 * 24) * 7;
}
